package com.dcrzl.shcz.common.entity.info;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.*;
import com.dcrzl.shcz.common.utils.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;


/**
 * 评审流程单
 *
 * @author dcrzl
 * @email 1728795786@qq.com
 * @date 2025-01-01 22:49:28
 */
@Data
@TableName("t_review_order")
@Accessors(chain = true)
public class ReviewOrder extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     *
     */

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;
    /**
     *
     */
    @TableField(value = "order_code")
    private String orderCode;
    /**
     *
     */
    @TableField(value = "gov_unit_id")
    private Long govUnitId;
    /**
     * 单位名称
     */
    @TableField(value = "gov_unit_name")
    private String govUnitName;
    /**
     * 项目名称
     */
    @TableField(value = "item_name")
    private String itemName;
    /**
     * 资金来源
     */
    @TableField(value = "money_from")
    private String moneyFrom;
    /**
     * 是否划分标段
     */
    @TableField(value = "divide_into_sections")
    private String divideIntoSections;
    /**
     * 送审金额
     */
    @TableField(value = "submission_amount")
    private Double submissionAmount;
    /**
     * 实际审核金额
     */
    @TableField(value = "actual_audited_amount")
    private Double actualAuditedAmount;
    /**
     * 审定金额
     */
    @TableField(value = "approved_amount")
    private Double approvedAmount;
    /**
     * 项目审减金额
     */
    @TableField(value = "project_audit_reduction_amount")
    private Double projectAuditReductionAmount;
    /**
     * 审  减  率
     */
    @TableField(value = "reduction_rate")
    private Double reductionRate;
    /**
     *
     */
    @JSONField(format = "yyyy年MM月dd日")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "pre_start_time")
    private Date preStartTime;
    /**
     *
     */
    @JSONField(format = "yyyy年MM月dd日")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "pre_end_time")
    private Date preEndTime;
    /**
     *
     */
    @JSONField(format = "yyyy年MM月dd日")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "review_start_time")
    private Date reviewStartTime;


    @JSONField(format = "yyyy年MM月dd日")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "take_advice_time")
    private Date takeAdviceTime;


    /**
     *
     */
    @JSONField(format = "yyyy年MM月dd日")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "review_end_time")
    private Date reviewEndTime;

    /**
     * 到期时间
     */
    @JSONField(format = "yyyy年MM月dd日")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "expiration_date")
    private Date expirationDate;

    /**
     *
     */
    @TableField(value = "order_status")
    private Integer orderStatus;
    /**
     *
     */
    @TableField(value = "pre_notes")
    private String preNotes;
    /**
     *
     */
    @TableField(value = "ing_notes")
    private String ingNotes;
    /**
     *
     */
    @TableField(value = "end_notes")
    private String endNotes;
    @TableField(value = "notes")
    private String notes;
    /**
     * 行政单位类型
     */
    @TableField(value = "gov_type")
    private Long govType;
    @TableField(value = "release_status")
    private Integer releaseStatus;

    /**
     *
     */
    @TableField(value = "status", fill = FieldFill.INSERT)
    private Integer status;
    /**
     *
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;
    /**
     *
     */
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    private Date updateTime;

    @TableField(exist = false)
    private Gov gov;

    @TableField(exist = false)
    private String govUnitIdListStr;

    @TableField(exist = false)
    private Integer dayNum;

    @TableField(exist = false)
    private Integer dayType;

}
